using TelerikMvcGridCustomBindingHelper.Util;

namespace TelerikMvcGridCustomBindingHelper.NHibernate.Projections
{
    public enum SqlOperator
    {
        /// <summary>
        /// and
        /// </summary>
        [StringValue("and")]
        AndAlso,

        #region Arithmetic Operators

        /// <summary>
        /// +
        /// </summary>
        [StringValue("+")]
        Add,

        /// <summary>
        /// -
        /// </summary>
        [StringValue("-")]
        Subtract,

        /// <summary>
        /// *
        /// </summary>
        [StringValue("*")]
        Multiply,

        /// <summary>
        /// /
        /// </summary>
        [StringValue("/")]
        Divide,

        /// <summary>
        /// %
        /// </summary>
        [StringValue("%")]
        Modulo,

        #endregion

        #region Bitwise Operators

        /// <summary>
        /// &
        /// </summary>
        [StringValue("&")]
        And,

        /// <summary>
        /// |
        /// </summary>
        [StringValue("|")]
        Or,

        /// <summary>
        /// ^
        /// </summary>
        [StringValue("^")]
        Xor,

        #endregion

        #region Comparison Operators

        /// <summary>
        /// =
        /// </summary>
        [StringValue("=")]
        Equal,
        
        /// <summary>
        /// >
        /// </summary>
        [StringValue(">")]
        GreaterThan,
        
        /// <summary>
        /// <![CDATA[<]]>
        /// </summary>
        [StringValue("<")]
        LessThan,
        
        /// <summary>
        /// >=
        /// </summary>
        [StringValue(">=")]
        GreaterThanOrEqual,
        
        /// <summary>
        /// <![CDATA[<=]]>
        /// </summary>
        [StringValue("<=")]
        LessThanOrEqual,
        
        /// <summary>
        /// <![CDATA[<>]]>
        /// </summary>
        [StringValue("<>")]
        NotEqual,

        #endregion

        #region Compound Operators

        /// <summary>
        /// +=
        /// </summary>
        [StringValue("+=")]
        AddEqual,
        
        /// <summary>
        /// -=
        /// </summary>
        [StringValue("-=")]
        SubtractEqual,
        
        /// <summary>
        /// *=
        /// </summary>
        [StringValue("*=")]
        MultiplyEqual,
        
        /// <summary>
        /// /=
        /// </summary>
        [StringValue("/=")]
        DivideEqual,
        
        /// <summary>
        /// %=
        /// </summary>
        [StringValue("%=")]
        ModuloEqual,
        
        /// <summary>
        /// &=
        /// </summary>
        [StringValue("&=")]
        AndEqual,
        
        /// <summary>
        /// |=
        /// </summary>
        [StringValue("|=")]
        OrEqual,
        
        /// <summary>
        /// ^=
        /// </summary>
        [StringValue("^=")]
        XorEqual,

        #endregion
    }
}